// Set和Map
console.log('========== Set和Map ==========');
// set集合不能存储重复的元素
let set = new Set();
set.add(1);
set.add(1);
set.add(2);
// 1,2
set.forEach(el => console.log(el));

let map = new Map();
map.set(1, 'zs');
map.set('2', 'ls');
console.log(map);
// 构造器传入一个数组元素为数组第一个元素为key第二个元素为value
map = new Map([['key1', 'value1'], ['key2', 'value2']]);
console.log(map);
// 构造器中传入一个map
let map1 = new Map();
map1.set('001','zs');
let map2 = new Map(map1);
map2.set('002','ls');
console.log(map2);
// map常用方法
// map2.clear();
// map2.delete('001');
// console.log(map2.has('003'));
// console.log(map2.size);
console.log(map2);

// 遍历Map方式一
map2.forEach((value,key) => {
    console.log(`${key}:${value}`)
})
console.log('-------------------')
// 遍历Map方式二
for (let key of map2.keys()) {
    console.log(`${key}:${map2.get(key)}`)
}
console.log('-------------------')
// 遍历所有value
for (let value of map2.values()) {
    console.log(value)
}
console.log('-------------------')
// 遍历Map方式三
for (let [key,value] of map2.entries()) {
    console.log(key,value)
}